This invention relates to data communication networks and more particularly to a system and method for providing flow control of data traffic through a link in a data communication network during a congested condition.
In a data communication network, flow control is used to control sources of data traffic so that the sources do not send too much data into the network at any moment. If a trunk or link in the network is overloading, all the sources using that link must be told to slow down. The transmission control protocol (TCP) used on the Internet uses an end-to-end congestion control algorithm, where TCP data traffic sources are required to send less traffic when congestion is indicated by loss of transmitted packets. TCP congestion control is conservative and uses an Additive Increase Multiplicative Decrease (AIMD) scheme to increase data transmission slowly after congestion has alleviated and to decrease data transmission rapidly when congestion is detected.
The initial TCP congestion control has undergone many changes over the years. Active queue management schemes, such as the Random Early Detection (RED) scheme, have been developed to manage congestion better. Furthermore, TCP-friendly schemes, such as the TCP-friendly Rate Control (TFRC) scheme, have been proposed to allow non-TCP traffic sources to have a smoother transmission rate, which is particularly important for media applications. Some of these techniques involve multiple parameters that are difficult and tedious to determine or tune to attain the desired mean delay, standard deviation of delay and link utilization. Moreover, some of these techniques adversely disrupt the original data traffic pattern to render them unsuitable for use in emerging applications wherein data has to be received close to the original data traffic pattern. An example of such emerging applications is the streaming of audio and video signals over a network.
Another prior art technique for flow control is the static peak rate control (PRC) technique. In the PRC technique, a source sends data at a rate that is not higher than a negotiated peak rate. That is, the inter-packet gap between any two data packets has to be above a predetermined value derived from the negotiated peak rate. Such a technique smoothes the data traffic to thereby reduce the mean delay and the standard deviation of the delay. This technique nonetheless suffers from low link utilization. There are times during operation when a link is available but not used because of the strict adherence to a selected peak rate.
There are other techniques that provide flow control by throttling a source when it is determined that there is congestion on a link. One such technique is described in U.S. Pat. No. 6,170,022, Linville et al., entitled “Method and System for Monitoring and Controlling Data Flow in a Network Congestion State by Changing Each Calculated Pause Time by a Random Amount.” Flow control according to the patent is implemented at a given node in a network of local area network (LAN) switches by having the node monitor the occupancy levels of queues or buffers. When a buffer is found to be occupied or filled beyond a predetermined threshold level, a pause command is generated for the source currently supplying traffic to the buffer. A pause time (PT) is calculated using an equation which takes into account (1) the transmission rate of the identified source, (2) the transmission rate of the output link servicing the congested buffer and (3) the queue or buffer length that can be occupied without a congestion condition being declared. To reduce the chance that queue lengths will “oscillate” about their threshold point due to multiple sources resuming transmission at the same time, each calculated pause time is adjusted to a randomly selected value falling within a range of PT±kPT, where k may be on the order of fifty percent. A disadvantage of such a scheme is that there may be significant deviations from the desired traffic pattern.